import { LOGIN_TOKEN } from '@/global/constants'
import { localCache } from '@/utils/storage'
import { BASE_URL, TIME_OUT } from './config/index'
import Request from './request'

export const request = new Request({
  baseURL: BASE_URL,
  timeout: TIME_OUT,
  interceptors: {
    requestSuccessFn: (config) => {
      const token = localCache.getStorage(LOGIN_TOKEN)

      // 这里需要进行类型缩小操作，也就是先判断config中是否有headers这个属性之后才能进行赋值操作，否则报错
      if (config.headers && token) {
        config.headers.Authorization = token
      }

      return config
    }
  }
})

export const mockRequest = new Request({
  baseURL: '/mock',
  timeout: TIME_OUT,
  interceptors: {
    requestSuccessFn: (config) => {
      const token = localCache.getStorage(LOGIN_TOKEN)

      // 这里需要进行类型缩小操作，也就是先判断config中是否有headers这个属性之后才能进行赋值操作，否则报错
      if (config.headers && token) {
        config.headers.Authorization = token
      }

      return config
    }
  }
})
